package seatiger.tomcat.catalina;

import java.io.IOException;

/**
 * 存储器 ，用于将session对象保存到换出，或者从别的地方加载到内存中
 */
public interface Store {

    Manager getManager();

    void setManager(Manager manager);

    /**
     * 从存储器中加载session对象
     * @param id
     * @return
     * @throws ClassNotFoundException
     * @throws IOException
     */
    Session load(String id) throws ClassNotFoundException, IOException;

    /**
     * 将session对象保存到存储器中
     * @param session
     * @throws IOException
     */
    void save(Session session) throws IOException;

    /**
     * 获取存储器中的所有session的id
     * @return
     * @throws IOException
     */
    String[] keys() throws IOException;

    /**
     * 从存储器中删除session对象
     * @param id
     * @throws IOException
     */
    void remove(String id) throws IOException;
}
